package demo.api.enterprise;

import java.io.IOException;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;

import util.HttpClientUtil;

/**
 * 4.12	获取文档待签数据
 * 将印章数据放入源PDF文档中，并生成文档待签属性，可使用数字证书对该值进行数字签名，签名方式采用 PKCS7#Detach
 * @throws IOException
 */
public class MessageSignature {
	private static String appKey = "aqwvn3QRxAZJWSWcSG0drMYTcWHLhvst";
    private static String appSecrty = "VSxS50qWdSaDjTpE54er3ETdCGjzClDg";
    private static String baseUrl = "http://210.34.84.159/smp-api";
    private static String api = "/api/enterprise/message/signature";

	public static void main(String[] args) throws IOException {
		String url = baseUrl.concat(api);  
		// 请求参数
        Map<String, String> params = new HashMap<>();
        params.put("doc_title", "购销合同");
        params.put("doc_number", "TW-GXHT-20200520A00001");
        params.put("plaintext", "{'出差人姓名':'莎士比亚','同行人姓名':'','目的地':'上海','预计出差天数':'2','出差事由':'','事项属性':'出差审批单','事项名称':'福建农林3','事项说明':''}");//原文
        params.put("locale", "深圳天威测试服务器");//位置
        params.put("description", "费用申请盖章");//描述
        params.put("side", "person");//"person" / "official"
        params.put("person_signature_id", "8795");//存储于 SMP中的个人签字图片ID
        //params.put("cert_serialnumber", "");//签名所用数字证书的序列号
        //params.put("signature_value", "");//Base64格式，签名后的结果
        //operator和tag_name二选1必填，普通情况使用operator即可
        params.put("operator", "bksyx001");//盖章操作人帐号(ID)，该操作人若未授权使用该印章，系统则回拒绝执行盖章操作。
        //params.put("tag_name", "");//公章授权标签，适用于自动化盖章场景。
       // params.put("official_seal_id", "1");//存储于SMP中的公章ID
        params.put("cert_keystore", "internal");
        params.put("nonce", UUID.randomUUID().toString().substring(0, 16));
        params.put("timestamp", String.valueOf(new Date().getTime()));
	    String resStr =  HttpClientUtil.getResponse(url, params, appKey, appSecrty);
	    JSONObject resJson = JSON.parseObject(resStr);	
	    System.out.println(resJson);
	}
}
